d2c112929a23b66832dbf2b0ed4cf487be4be4a4,core/generator/source/jetbrains/mps/generator/impl/TemplateGenerator.java,TemplateGenerator,apply,#boolean#,131

Before Change


    myChanged |= myDependenciesBuilder.isStepRequired(); // TODO optimize: if step is required, it should be the last step

    // optimization: no changes? quit
    if (!isPrimary && !myChanged && myDelayedChanges.isEmpty() && !myWeavingProcessor.hasWeavingRulesToApply()) {
      return false;
    }

    if (!myInplaceModelChange) {
      // publish roots
      for (SNode outputRoot : myOutputRoots) {
        myOutputModel.addRootNode(outputRoot);
      }

      // reload "required" roots from cache
      ttrace.push("reloading roots from cache", false);
      myDependenciesBuilder.reloadRequired(getMappings());
      ttrace.pop();
    } // XXX if in-place change, every required root has been reloaded on previous step, imo

    checkMonitorCanceled();

    if (myWeavingProcessor.hasWeavingRulesToApply()) {
      ttrace.push("weavings", false);

After Change


    } // XXX if in-place change, every required root has been reloaded on previous step, imo

    if (myWeavingProcessor.hasWeavingRulesToApply()) {
      checkMonitorCanceled();
      ttrace.push("weavings", false);
      myWeavingProcessor.apply();
      myWeavingProcessor = null;